<?php namespace Common\Model;
use Hdphp\Model\Model;
class Glist extends Model{
	protected $table = 'glist';
	
	protected $validate = array(
		//array(字段名,验证方法,错误信息,验证条件,验证时间)
//		分类名不能为空
		array('combine','required','组合不能为空',3,3),
		array('itemno','regexp:/^[A-Za-z0-9]{12}$/is ','货号只能是字母和数字且为12位',3,3),
		array('inventory','num:0,100000','库存不能为空',3,3),
//		排序范围
	);
	
	public function store(){
		
//		对组合进行重组
		$_POST['combine'] = implode(',', Q('post.combine'));
		if(!$this->create()) return false;
//		p($this->data['combine']);die;
//		验证组合是否存在
		$vali = $this->where("goods_gid = {$this->data['goods_gid']} AND combine = '{$this->data['combine']}'")->find();
		if($vali){
			$this->error = "该组合货品已经存在！";
			return false;
		}
		
//		更新商品表中的总库存
		$gid = Q('post.goods_gid',0,'intval');
//		本次提交过来的库存
		$gnum = Q('post.inventory',0,'intval');
//		对good表进行更改
		$goodsModel = new \Common\Model\Goods;
//		商品表中的货品库存
		$total = $goodsModel->where("gid = {$gid}")->pluck('inventory');
//		更新
		$total = $total + $gnum;
		$temp = array(
			'gid'=>$gid,
			'inventory'=>$total,
		);
//		更新商品表数据库
		$goodsModel->save($temp);
		
//		更新货品列表	
		return $this->add();
	}
	
//	编辑
	public function edit(){
		$_POST['combine'] = implode(',', $_POST['combine']);
		if(!$this->create()) return false;
		
//		对库存的处理
		$glid = Q('post.glid',0,'intval');
		$gid = Q('get.gid');
//		提交过来的库存
		$newinve = Q('post.inventory',0,'intval');
//		原货品表中保存的库存数据
		$oldinve = $this->where("glid = {$glid}")->pluck('inventory');
//		如果提交的数据和原数据表的数据不一样则表示有更新数据表，需要对总库存进行更改
		if($newinve!=$oldinve){
			$goodsModel = new \Common\Model\Goods;
			$total = $goodsModel->where("gid = {$gid}")->pluck('inventory');
//			总库存先减去就货品库存再加上新提交的数据则表示更新
			$total = $total - $oldinve + $newinve;
			$temp = array(
				'gid'=>$gid,
				'inventory'=>$total,
			);
//			更新总库存数据库
			$goodsModel->save($temp);
		}
		
		
		$this->save();
		return TRUE;
	}
	
	
}
 ?>